package com.arong.swing.util;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

/**
 * 
 * Title: -Data Application Products <br>
 * Description: 字符 处理工具类<br>
 * Date: 2012-3-5 <br>
 * Copyright (c) 2015  anrong  <br>
 * @author hsy
 */
public class StringUtil  extends StringUtils{
    
	/**
	 * 验证字符串是否为空
	 * @param str
	 * @return
	 */
	public static boolean isBlank(String str) {
		return StringUtils.isBlank(str);
	}
	
	/**
	 * 验证字符串是否为非空
	 * @param str
	 * @return
	 */
	public static boolean isNotBlank(String str) {
		return StringUtils.isNotBlank(str);
	}
	/**
     * 对类似如下的结构的字符串进行处理{key:value;key:value} 最终封装成了一个map对象
     * 
     * @param str
     * @return
     */
    public static Map<String, String> splitStr(String parameter) {
        Map<String, String> map = new HashMap<String, String>();
        if (null == parameter) {
            return null;
        }
        int beginIndex = parameter.indexOf("{");
        int endIndex = parameter.lastIndexOf("}");
        String newParameter = parameter.substring(beginIndex + 1, endIndex);
        String[] array = newParameter.split(";");
        for (String string : array) {
            String key = string.split(":")[0];
            String value = string.split(":")[1];
            map.put(key, value);
        }
        return map;
    }
    /**
	 * 判断所给字符串不为<code>null</code>,且长度大于0
	 * @param str 源字符串
	 * @return 如果源字符串不为<code>null</code>且长度大于0,返回<code>true</code>
	 * @see #hasText(String)
	 */
	public static boolean hasLength(CharSequence str) {
		return (str != null && str.length() > 0);
	}
	/**
	 * 检查源字符串是否是文本。
	 * 如果源字符串非<code>null</code>，长度大于0，且至少包含一个非空白字符。返回<code>true</code>
	 * <p><pre>
	 * StringUtils.hasText(null) = false
	 * StringUtils.hasText("") = false
	 * StringUtils.hasText(" ") = false
	 * StringUtils.hasText("12345") = true
	 * StringUtils.hasText(" 12345 ") = true
	 * </pre>
	 * @param str 源字符串
	 * @see java.lang.Character#isWhitespace
	 */
	public static boolean hasText(CharSequence str) {
		if (!hasLength(str)) {
			return false;
		}
		int strLen = str.length();
		for (int i = 0; i < strLen; i++) {
			if (!Character.isWhitespace(str.charAt(i))) {
				return true;
			}
		}
		return false;
	}
}
